Add all ingredients to your bowl for the bread dough, starting with 3 cups flour. Mix on medium speed for 1 minute. Check the dough. It should be "tacky" (slightly sticky) but not too sticky. You can see this in the video.
If you need to, add in ¼ cup more flour, then mix another 30 seconds and check. If you still need it, add in the last ¼ cup. Just keep in mind the dough should be tacky.
Mix on medium speed for 6 minutes until the dough is smooth. Add in the cranberries and walnuts and mix for another 20-30 seconds until it is well combined.
Cover, move this to a warm place and let this double. Mine took about 45 minutes. On a lightly floured surface, shape your dough. I made mine into a boule, which is just like a giant roll shape. You can also just form it into a regular loaf.
Place on your parchment-lined baking sheet. Or butter your baking sheet and place the loaf right on that.
Cover and let this double. Mine took about 30 minutes. At the end of the 30 minutes, make sure and preheat the oven to 350 degrees. When it is ready, mix the egg and milk, then brush over your loaf of bread. I scored my bread, and you can as well if you like.
Move to the oven and let this bake for about 30-40 minutes. I like to check by taking the temperature of my bread. This is the best, most accurate way to check wheat bread. It needs to be 190 degrees.
When it is done, remove it from the oven. It is best to let this cool for 10-15 minutes before slicing, the bread will continue to bake during this time. I also like to move it to a cooling rack so it doesn't sweat on the bottom.
That is it and you are done!! Now, sit back and enjoy. You deserve it!