In a small saucepan, combine the milk, water, and butter. Warm over medium low heat until butter is melted. Cool for about 5 minutes, or until temperature is 120-130°F.
In the bowl of a stand mixer fitted with a dough hook (or in a large bowl if planning to mix by hand), combine 2½ cups of the bread flour, the yeast, sugar and salt. Add the warm water mixture, followed by the beaten eggs, mixing on low speed until incorporated.
Add the remaining bread flour 2 tablespoons at a time while mixing on medium low speed until dough almost clears the bowl and is only a slightly sticky to the touch (It's okay if some dough sticks to your fingers). You may not need all of the remaining flour, or you may need more than is called for. Knead until smooth and elastic, about 5-7 minutes more.
Cover with plastic wrap and put in a warm place and allow to rise until doubled, about 1.
Punch down dough and let rest for a few minutes. Divide dough into eight equal pieces for larger buns and 12 equal pieces for smaller rolls. Shape into balls.
Place on a sheet pan (for buns) or 9x13-inch pan (for smaller rolls) lined with parchment paper. Spray some plastic wrap with non-stick cooking spray and place over the shaped buns/rolls. Return to a warm place and continue to rise for an additional 30 minutes until doubled.
When ready to bake, preheat oven to 400°F. Brush buns with egg wash and sprinkle with sesame seeds or poppy seeds, if desired.
Bake until golden brown, about 10 minutes for larger buns and 15 minutes for smaller rolls. Cool completely on a wire rack.