Melt the butter in a small saucepan over low heat. Take the pan off the heat and add the cold milk into the pan. Mix should be lukewarm now.
Mix the yeast and sugar and add some of the lukewarm milk. Let mixture stand until yeast begins to bubble (5 – 10 minutes).
In a big bowl, mix the flour and the salt together. Then add all the other ingredients. When the dough has pulled together, turn it out onto a lightly floured surface and knead until smooth and elastic, for about 10 minutes.
Place the dough into a bowl, cover with a damp cloth and let it rise at room temperature for about 1 1/2 hours or until double in size.
Cut dough in half and roll both halves into long strings.
Braid the dough into a Zopf (see picture below). There are also plenty of tutorials online.
Place the Butterzopf onto a baking tray lined with baking parchment. Lightly brush egg wash on the loaf, cover and set aside to proof for another 30 minutes.
Brush another even coat of egg wash before baking the Butterzopf in a preheated oven at 200C (395F) for about 35 minutes. Tap the bottom of your zopf, the bread will sound hollow when it is done.
Let cool completely on a wire rack.