Begin with the yeast dough. Heat the milk on the stove top or in the microwave until it’s between 120F and 130F (49-54C). Whisk in the dry yeast and then let the mixture stand for 5 minutes.
In a large mixing bowl, combine the melted butter, egg, salt, and sugar. Whisk for a minute until the egg is well-beaten. Pour in the milk and yeast next, then mix again.
Gradually begin adding in the flour, about ½ to 1 cup at a time. Once a dough ball forms, transfer the dough onto a well-floured surface. Knead the dough for 4 to 5 minutes, adding in small amounts of flour as needed, until a smooth, soft and elastic dough forms.
Place the dough into a large bowl, cover it with a clean towel, and allow the dough to proof in a warm corner of your kitchen until doubled in size; about 1 hour.
Making the Filling:
Peel and cube the potatoes, then place into a large pot and fill it with water. Season the potatoes generously with salt, then bring to a boil. Cook the potatoes for 15 to 18 minutes, until they’re fork tender.
Drain the potatoes and add in the butter and half-and-half or cream. Mash the potatoes into a smooth but slightly dry puree. Place the potatoes into the refrigerator to chill.
Next, preheat a large frying pan over medium heat and add a few tablespoons of butter, the diced onion and the diced bacon. Sauté this mixture for 7 to 9 minutes, until the onion is tender. Allow this mixture to cool.
Once the potatoes have cooled to room temperature, finish making the filling. Combine the potatoes, the onion and bacon mixture, plus the cheese, dill, and green onions, in a large mixing bowl. Season with salt and pepper to taste, then using your hands or a large spoon, combine everything together, forming a uniform filling.
Shaping the Piroshki:
Lightly flour your work surface and turn out the proofed dough. Punch it down lightly, then use a spatula or knife to divide the dough into 12 or 16 pieces. Keep these pieces covered with a towel so they don’t dry out.
For each piroshok, roll a ball of dough into a 6-inch circle. Top with a generous amount of filling, about 1/3 to ½ cup.
Bring the dough up and over the filling, pinching it together at the top, then pinch it down the sides. Make sure none of the filling gets on the seams! Go over the seam a few times to ensure the filling is well sealed.
Turn the piroshki over seam side down and gently flatten them.
Deep-Frying Instructions:
Begin preheating your frying oil when you start shaping the piroshki. Fill a deep pan or pot with ¾-inch of oil and heat over medium heat to 300F/149C.
Fry 3 to 4 piroshki at a time. Carefully slip them into the hot oil, seam side down first. Fry them for 4 to 5 minutes per side, turning once the first side is a rich golden-brown color. If the piroshki are browning too quickly, reduce the heat.
Remove the fried piroshki onto a wire rack to cool. I like to place a sheet of paper towels under the rack to catch any excess oil. Allow the piroshki to cool for at least 5 minutes before enjoying.
Baking Instructions:
Preheat your oven to 350F/177C. Line two large baking sheets with parchment paper or silicon mats.
Shape the piroshki, then place them seam side down onto the baking pan, spacing them a few inches apart. Brush the piroshki with egg wash using a pastry brush (beat 1 egg very well).
Allow the piroshki to proof for 30 to 45 minutes, until they’re extra fluffy.
Bake them at 350F for about 30 minutes, until the dough is golden brown. Remove them from the oven and onto a wire rack to cool.