Combine milk and water and heat to about 90°F. Pour milk into a large mixing bowl.
Stir in yeast, sugar, 1 cup flour, and salt. Stir in butter and eggs.
Mix in 1 cup flour and then add more, a little bit at a time, until a shaggy dough forms. Flour a work surface and turn out dough. Knead until smooth and elastic, adding more flour to prevent sticking, about 8-10 minutes. The dough should be soft and supple.
Grease a large bowl. Place dough in bowl, cover, and set in a warm, draft-free place to rise until doubled, about 1 hour to 90 minutes.
Meanwhile, mix together butter, cranberry sauce, almonds, flour, and granulated sugar for the filling.
When the dough has risen, turn it out onto floured work surface. Roll dough to a rectangle about 8x16 inches. Scatter or spread filling on top of dough, then roll up the dough lengthwise.
Cut the dough down the middle lengthwise, then turn the cut edges up. Twist the two pieces together, keeping the cut edges up, then form into a circle, tucking in the ends.
Carefully transfer dough to a parchment-lined baking sheet. Cover and let rise again for about 30 minutes. Meanwhile, preheat the oven to 350°F.
Bake the bread for 25 minutes, then transfer to a wire rack to cool.
Mix together powdered sugar, milk, and almond extract until smooth, then drizzle over warm bread.