Make the tangzhong (water roux): In a small saucepan, whisk together the bread flour and water until no lumps remain. Cook over medium heat, stirring constantly, until the mixture thickens to a paste-like consistency, about 2-3 minutes.
Transfer the tangzhong to a clean bowl and cover with plastic wrap, pressing it directly onto the surface to prevent a skin from forming. Refrigerate for at least 30 minutes (or up to 2 days).
In a large bowl, combine the bread flour, sugar, salt, and instant yeast. Add the chilled tangzhong, milk, butter, and egg. Using a wooden spoon or your hands, mix the ingredients until a shaggy dough forms.
Turn the dough out onto a lightly floured surface and knead for about 10 minutes, until the dough becomes smooth, elastic, and passes the windowpane test.
Place the dough in a lightly greased bowl, cover with a damp towel or plastic wrap, and let rise for 1 hour, or until doubled in size.
Punch down the dough to release any air bubbles. Divide the dough into 8 equal pieces and shape each piece into a smooth ball.
Place the dough balls in a greased 9x13 inch baking pan. Cover and let rise for 30-45 minutes, or until the dough has puffed up and is nearly touching the sides of the pan.
Preheat the oven to 350°F (175°C).
Bake for 20-25 minutes, or until the tops are golden brown. Brush the tops with melted butter, if desired.
Allow the bread to cool in the pan for 5 minutes, then transfer to a wire rack to cool completely before serving.
