Combine 1 cup of the flour, the sugar, and the yeast in the bowl of a stand mixer. Add the milk and mix just to combine. Let the mixture sit until it is bubbling, about 15 minutes.
In another bowl, whisk together the melted butter, egg, and egg yolks.
Once the mixture has bubbled, add in the butter and eggs along with 2 more cups of the flour and the salt. Mix until combined, then switch to the dough hook. Continue to knead, adding more of the flour if needed, for about 10 minutes. The dough should be slightly sticky, but not overly sticky.
Spray a large bowl with nonstick cooking spray (or oil with an oil of your choice) and place the dough in the bowl. Cover and let it rise until doubled, 1 hour to 1 ½ hours.
While the dough is rising, make the blueberry filling. In a small pot, combine the blueberries, sugar, lemon juice and cornstarch. Place over medium heat and bring to a boil. Reduce the heat to a simmer and continue to cook, stirring often, until the mixture is thick and has a jam-like consistency, about 15 minutes. Remove from the heat and let it cool completely.
Make the streusel topping by combining the flour, sugar, melted butter, and salt. Let the mixture sit until you are ready to use it, letting it cool completely. Once needed, take a fork and scrape the mixture until you get fine crumbs, breaking up all big clumps.
Once the dough has risen, punch it down and divide it into 15 equal pieces. Form each into a smooth ball. Place on a parchment lined baking sheet and cover with a towel and let rise until doubled in size, another 30 to 45 minutes.
While the dough is in its last rise, make the cream cheese filling. Place the cream cheese in a bowl and beat with a hand mixer until light and smooth. Beat in the powdered sugar, the half of a lightly whisked egg, and the vanilla. Continue to beat until fully combined and smooth.
Preheat the oven to 375ºF. Use your fingers to make an indentation in each ball that is about 2 ¼ inches in diameter, and almost as deep as the ball.
In a small bowl, whisk together the remaining ½ of an egg with a teaspoon of water. Brush this mixture over the top of each pastry (you won’t brush this on the inside of the indentation).
Fill each hole with about 2 tablespoons of filling. You can do all cream cheese, all cherry, or half and half.
Sprinkle the streusel topping over the top.
Bake in the preheated oven until the dough lightly golden brown, about 17-19 minutes.
Serve warm.
