In a medium saucepan, combine milk, water, butter, salt, and sugar. Heat gently over medium-low heat.
Allow the butter to melt completely, then stir the mixture until smooth. Remove the saucepan from the heat.
Immediately add the flour to the saucepan and mix. This helps prevent lumps and ensures a smooth consistency. The mixture will form a thick dough.
Spread the dough evenly across the base of the saucepan and return it to low heat.
Cook the dough to reduce moisture, stirring constantly. You'll hear it crackling—this is a sign that the moisture is evaporating.
Continue cooking until the dough begins sticking to the pan and forms a thin film on the bottom. This indicates that it's sufficiently dry. Properly drying the dough is crucial to prevent the buns from collapsing later.
Take the dough off the heat and mix it briefly to release excess steam.
Gradually add beaten eggs, one at a time, mixing well after each addition.
Add eggs slowly; you may not need all of them depending on how much moisture was removed during cooking. The dough should be smooth, hold its shape, and hang off the spatula without being runny.
Transfer the prepared dough into a piping bag with a ½-inch opening. Preheat the oven to 230°C.
Line a baking tray with parchment paper. For consistent bun sizes, use a round template to outline circles on the paper.
Pipe the dough onto the tray in one continuous motion, following the circle template. Avoid moving the bag or stopping midway to ensure the buns rise evenly. Leave about 1 inch of space between each bun.
Lightly brush the piped dough with egg wash using a pastry brush.
Place the tray in the oven and immediately reduce the temperature to 170°C. Bake for 20 minutes.
After 20 minutes, briefly open the oven door for about 5 seconds to release steam. Close the door and bake for another 15-20 minutes until the buns are golden and cooked through. Avoid overbaking to keep the buns from drying out.