Tangzhong. In a small to medium saucepan, whisk together the bread flour and the water until fully combined. Place pan on a medium-low heat, whisking occasionally. Once the mixture starts to simmer, whisk constantly until it is thickened to a paste consistency. The temperature should be 149° F. Remove from heat and pour tangzhong into bowl of an electric mixer. Spread the tangzhong thinly on the bottom of the bowl to allow it to cool quicker. Set aside while gathering the rest of the ingredients.
Dough. Add the water, oil, egg yolks, bread flour and yeast to the tangzhong. Use a wood spoon or the paddle attachment of an electric mixer to combine all the ingredients just until the flour is fully absorbed. Cover with plastic wrap and allow to rest for 20 minutes.
Add the sugar and honey. Using a dough hook attachment to the electric mixer, knead the dough for approximately 4-5 minutes. You may need to stop the mixer several times to scrape down the sides of the bowl. Knead until the dough cleans the sides of the bowl. Lower the mixer speed and slowly add the salt. Knead for 2-3 additional minutes until the dough passes the windowpane test. (That means that, if you take a small piece of dough and stretch it with both your hands, it should become very thin and translucent without ripping.)
Shape dough into a ball and place back in mixing bowl. Cover with plastic wrap or a tea towel and allow to rise in a warm area on the counter for approximately 3 hours. The dough should double in size.
Deflate the dough by pulling a piece from the bottom and folding it over itself, turning the bowl so you can do four similar folds. Remove the dough from the bowl and give it several kneads on the counter.
Weigh the dough and divide into two or three equal portions, depending on how many challahs you are making.
Further divide each portion into the number of strands you will be making for each braid.
Shape each portion into a ball. If the dough is slightly sticky, lightly flour your countertop and the balls of dough.
Press down each ball into an oval. Fold the top third of the oval over itself towards you. Fold the top part again over the rest of the dough. Using the palms of both hands, roll the dough against the countertop to create your strands. If the dough starts pulling back, place it aside and allow it to rest for 5-10 minutes. Braid and shape as desired.
Cover loosely with plastic wrap and let rise 2-2½ hours.
Towards the end of the rising time, preheat oven to 350° F.
Apply egg wash. Sprinkle challah with any toppings, if using. Bake 25-30 minutes until golden brown on top and sides.