Grease a 23cm / 9in round loose-bottomed cake tin and line both the base and sides with baking parchment.
To make the dough, place the non-dairy milk and butter in a pan over a low heat and stir until the butter has melted. Set it aside to cool until it is lukewarm. Do not add it to the other ingredients while it is hot or it may kill the yeast. You should be able to comfortably hold your finger in the milk.
Once the milk has cooled, place the bread flour in the bowl of a stand mixer fitted with a dough hook. Add the yeast to one side and the sugar and salt to the other. Mix to combine.
Add the butter and milk mixture and the vanilla extract and stir to form a rough dough then knead on a medium speed for 5-10 minutes until the dough is smooth and stretchy. It should still be a bit sticky but should pull away from the sides of the bowl cleanly.
If it seems too wet you can add a little more flour, a tablespoon at a time but be careful not to add too much or the bread will be dry. If you don't have a stand mixer then you can knead the dough by hand on an unfloured surface.
Place the kneaded dough in a lightly oiled bowl, cover and leave to rise until doubled in size - about 1-2 hours in a warm spot or overnight in the fridge.
Meanwhile prepare the filling; mix the melted butter, ground almonds, sugar, milk and almond extract together in a bowl. Crumble in the marzipan and mash it in a bit with a fork, there is no need to get it smooth, you want some lumps of marzipan in there.
Once the dough has doubled in size, punch it down and give it a brief 30 second knead to knock out the excess air.
Roll the dough out on a lightly floured surface into a rectangle approx 30 x 40 cm. Spread over the filling evenly, leaving a 1cm border around the edge. I find it easiest to use my hands to spread the filling over.
Roll the dough up from one of the long edges into a log. Use a very sharp knife to slice the log in half lengthwise. Here is where it gets messy. Turn the two halves so that the cut side is facing up then lay one over the other so that they make an X shape.
Twist them together by laying one side over the other, keeping the cut side up, until all of the dough is twisted and you are left with a braid.
Curl the braid up from one end into a round. Place the round into the greased and lined 23cm round cake tin. (See post above for step-by-step images of how to shape the dough).
Loosely cover and leave to rise until it is puffy and increased in size, about 45 minutes to 1 ½ hours. The dough should spring back slowly if you gently press it with a finger, if it springs back quickly then it needs a little longer. Meanwhile preheat the oven to 180°C/160°C fan/350°F/gas mark 4.
When the bread is ready to bake, gently brush any exposed dough with milk and scatter over a handful of flaked almonds.
Bake for 50-60 minutes, covering with tin foil once the top is brown. It is done when the centre measures at least 90°C/194°F on a probe thermometer.
Leave to cool in the tin on a wire rack for about half an hour before unmoulding.