Combine the all-purpose flour, four cups of bread flour, salt, and softened butter in a stand mixer bowl. Mix briefly with the dough hook on low.
Stir the yeast, sugar, and warm milk together. Let stand about 15 minutes, until foamy, then mix in the eggs.
Pour the yeast mixture into the flour mixture. Mix on low until absorbed, scrape the bowl, then add remaining bread flour as needed. Mix on medium until the dough is slightly sticky but firm.
Place the dough in a greased bowl, cover, and let rise until doubled, about one hour.
Divide the dough into three equal pieces, roll each into a rope, and braid them together. Tuck the ends under and place on a lined baking sheet.
Cover and let the shaped loaf rise until puffy, about 30 minutes. Brush with egg wash.
Bake at 350°F for about 25 minutes, until deeply golden and cooked through. Cool before slicing.