Mix: In medium bowl, combine the flour, nonfat dry milk, sugar, salt and yeast. Combine with a whisk and set aside. To the bowl of a stand mixer, add the milk, 1 egg, melted butter and half of the flour mixture. Mix on low speed with the dough hook attachment until all ingredients are incorporated and mixture is smooth. Gradually add the remainder of the flour mixture, allowing it to fulling incorporate for about 2 minutes.
Rest: Cover and let dough rest for 20 minutes - this gives the flour time to absorb the liquids, making the dough less sticky.
Knead: After the dough has rested, knead on low speed for 6-10 minutes or until the dough can pass the windowpane test - you should be able to stretch the dough at least 3-4 inches without it tearing. A successful windowpane test will reveal a dough that is nearly translucent when stretched. If the dough cannot stretch at least 3 inches without tearing, knead it for another 1-2 minutes and test it again. Repeat if necessary until it passes the windowpane.
First Rise: Place the dough in a large bowl greased with nonstick spray, turning it so that all surfaces of the dough are coated. Cover the dough with a plastic bowl cover or clean kitchen towel. Let the dough rise until doubled in size, about 60-90 minutes.
Scale: Punch down the dough and turn it out onto a lightly floured work surface. Divide the dough into 6 equal pieces. If using a kitchen scale, they should weigh about 120 grams each.
Pre shape: Slightly flatten each piece of dough into a 4-inch square and roll up. This pre shaping will help you get a prettier rope later.
Roll the dough: Roll each piece of dough into a 24-inch rope. Slightly taper the dough at both ends by applying a bit more pressure on the dough with your fingertips. Be sure to watch my video on this post for visual help!
Braiding the dough: To make the heart, you'll need two braided pieces of dough. To make the first braid, take three of the six ropes and pinch the ends together on one end. Braid the dough by bringing the center rope over the right rope, making the right rope become the center rope. Bring the now center rope over the left rope, making the left rope the center rope. Continue this pattern until you reach the end. Pinch the ends together and slightly taper the ends (just as you did when making the ropes). Repeat this braiding method with the remaining 3 ropes, eventually giving you tow braided ropes.
Shaping the heart: Prepare a half sheet baking sheet (13"x18") by lining it with parchment paper. Arrange each of the two braided pieces of dough into a heart shape, pinching the dough together at both points of the heart where the two ends meet.
Final Rise: Cover the dough with a clean kitchen towel and let it rise while the oven preheats to 350°F, about 30 minutes. Avoid over proofing this final rise, or the heart shape may get too puffy, causing it to lose it's defined shape. Prepare the egg wash by whisking together one egg with 1 Tablespoon water.
Bake: Before baking, brush the dough with the egg wash, getting all of the crevices. Bake on the center rack of the oven for 24-28 minutes or until the bread is golden brown and has an internal temperature of 190°F. Allow the bread to cool on the pan for 15 minutes before serving.
Store any leftovers in an airtight container for up to 5 days.