Combine flours and salt in a large bowl. Cut in butter chunks until pea-size or smaller. Drizzle with 4-5 tbsp of cold water and the vinegar tossing with a fork until dough becomes scraggly. Add another tbsp of cold water if necessary. Turn mixture out onto a clean work surface and knead until dough comes together. Form into a flat disk and wrap in plastic wrap. Refrigerate for at least an hour.
Heat oil in a large skillet. Add onion and green pepper and sauté over medium heat for 2-3 minutes. Add ground beef and continue to cook until beef is no longer pink and has started to brown, breaking up beef chunks as it cooks. Remove from heat and dab out any excess fat with a paper towel.
Return to medium heat and add spices and water, stirring to combine. Allow mixture to come to a simmer and cook uncovered until most of the moisture has evaporated, about 10 minutes.
Remove from heat and stir in beans and half of the cheese.
Preheat oven to 375°F and line a large baking tray with parchment.
Roll dough into a 14″ circle that will be about 1/8″ thick. Fold dough in half and move to your prepared baking tray.
Spread beef mixture in the centre of the dough leaving a 1 1/2″-2″ boarder of dough. Fold the dough boarder up and over the beef mixture, crimping the dough slightly as you go.
Whisk egg with a tbsp of water and brush onto exposed pastry edge. Bake for about 35 minutes until pastry is golden.
Remove from oven and top centre with remaining cheese. Cut into wedges and serve with desired toppings.
-The pastry can be made up to a day in advance and kept chilled until ready to use.