In a bowl, mix together 2 ½ cups of the flour, sugar, salt, and yeast. In a separate bowl, mix together the milk, butter, water, and extracts.
Slowly stir in the wet ingredients into the flour mixture and mix until combined. Add in the eggs one at a time, and incorporating well before adding the next. Slowly add the remaining flour and then knead for at least 10 minutes (you should only need about 3 - 4 minutes if using an electric mixer with dough hook). The dough should be sticky, but manageable.
Place the dough in an oiled bowl and cover. Leave in a warm, dry area and allow to rise for about 30 minutes, or until doubled in size.
Deflate the dough and turn out the dough onto a lightly floured surface. Roll out until it is about 10 x 18, Brush with the butter, then sprinkle the graham crackers and chopped chocolate.
Use a pizza cutter to cut out about 4 strips lengthwise. Stack these strips and then cut down into 6 sets of squares.
Brush a 9 x 5 loaf pan with butter and place the squares cut side down into the loaf pan, pressing them together as needed to fit it all in. Stuff each of the slices with a generous amount of marshmallows (you can try to add the marshmallows in with the chocolate and graham crackers, but I found that was too difficult), as you add in another set of squares.
Cover the pan and allow it to sit for another 15 - 20 minutes. Preheat the oven to 350 degrees F. Bake for 30 - 35 minutes, or until the top is a nice light brown. Top with additional marshmallows and bake for another 5 minutes, or until the marshmallows melt together and are lightly toasted on top.
Notes
*Can use active dry yeast instead - just remember you will have to increase rise times by at least double.