Preheat oven to 250 degrees F.
Place the bread pieces into an even layer on baking sheet. Bake until completely dried out, stirring occasionally, about 45 - 50 minutes.
When the bread as dried, remove from the oven and increase the oven temperature to 350 degrees F.
While the bread is drying in the oven, heat a few tablespoons of olive oil in a pan over medium high.
Add the sausage, crumbling while it cooks, until golden brown.
Remove the sausage from the pan, leaving any drippings, and place into a large mixing bowl.
Add the onions and celery into the pan, sautéing in the drippings. Add more olive oil as needed. Sauté vegetables until the onions are translucent.
Add the garlic and herbs. Sauté another 2 - 3 minutes until the garlic is fragrant.
Remove the vegetables and herbs from the pan and put into the same bowl as the sausage.
Add the dried bread and cranberries to the same mixing bowl. Stir to combine.
Pour in 1.5 - 2 cups of stock until the mixture is desired consistency.
Adjust seasoning with salt and pepper. Stir in beaten egg.
Pour mixture into a greased 9" x 13" baking dish.
Slice butter in 8 tablespoons and place evenly on top of the bread mixture.
Cover baking dish with a sheet of aluminum foil and bake for about 35 minutes. Remove foil and continue baking uncovered for another 10 - 15 minutes.
Garnish with additional herbs if desired.