Cook the bacon in a large stock pot or dutch oven over medium heat until slightly crisp and remove from pan with a slotted spoon to drain on a paper towel lined plate.
Drain excess bacon grease, leaving about 1 Tablespoon in the pan.
Add the minced shallots to the pan and cook, stirring occasionally for 2-3 minutes until soft.
Add the garlic and cook stirring constantly for one minute.
Pour in about 1/2 cup of the broth and use a wooden spoon to scrape up all of the browned bits from the bottom of the pan.
Pour in the remaining broth along with the beans, salt & pepper to taste, red pepper flakes, oregano, thyme and rosemary.
Bring the soup to a boil, then, reduce heat to low and simmer uncovered for 20 minutes.
Remove the pan from the heat and if desired use tongs to remove the large sprigs of rosemary and thyme from the soup.
Ladle the soup into bowls and serve topped with the cooked bacon and parmesan cheese if desired.
Leftover soup can be stored in an airtight container in the refrigerator for up to 3 days.