My version is really a rich egg bread. A real challah is made with water instead of milk, and oil instead of butter.
Dissolve yeast in warm water. Add milk, sugar, salt, 3 eggs, butter, and half the flour. Mix until smooth. Add remaining flour, enough so dough handles easily. Knead, and let rest for 5 minutes. Place in a greased bowl and let rise until doubled. Punch down. To shape loaves, divide dough into 1 small and two large portions. Divide each portion into thirds, and roll each third into a rope. Braid three ropes together, tucking ends under. Let braids rise on a greased cookie sheet, covered, until doubled. Before baking, brush with a mixture of 1 egg yolk and cold water, and sprinkle with poppyseeds if desired. Bake in a preheated oven at 375 degrees F for 35 to 45 minutes, until golden brown. Bread will sound hollow when tapped. Cool on racks.