In a medium bowl, combine the warm water and milk. Add the yeast and sugar and stir to dissolve. Cover the bowl with a towel and let the yeast proof for about 5 minutes, until foamy.
Add the egg yolks, olive oil, 2 cups flour, and the salt to the yeast mixture and mix with your hands until a ball of dough is formed, adding more flour if the dough is very soft. Turn the dough out onto a floured surface and knead until smooth.
Lightly grease a large bowl with olive oil. Add the dough, turn to coat, and cover tightly with plastic wrap and then a towel. Let rise in a warm place for about 1 hour, or until doubled in size.
Punch down the dough, turn it out onto a floured surface, and knead it for a few minutes. Divide the dough into 3 equal pieces. Roll each piece into a 16-inch-long rope. Pinch the ropes together at one end. Lay the rope on the left over the one in the middle, then lay the rope on the right over the middle, and so on to the ends of the ropes, creating a braid. Pinch the ends together. Grease a cookie sheet, and place the braid on the sheet.
Gently brush the entire surface of the braid with the beaten egg and sprinkle on the poppy seeds. Let the braid rise in a warm place for about 1 hour, until doubled in size.
Preheat the oven to 375F. Bake the braid for about 25 minutes, or until the crust is golden brown. Remove to a rack to cool.
Note: Once the bread has cooled completely, it can be wrapped tightly in foil and frozen for up to 3 months.
Variation: Add chopped olives, slivers of raw squash or pumpkin, or fried minced prosciutto or ham for special occasions. Sesame seeds, anise seeds, or coarse sea salt may be sprinkled over the top instead of the poppy seeds.