Preheat oven to 400 degrees F (200 °C).
Place the potatoes in a large pan, cover with water, add a large pinch of salt and bring to the boil. Boil until you can insert a knife or fork into them with minimal resistance. Do not overcook them.
While the potatoes are boiling, place shredded cabbage and shredded Brussels sprouts in a separate pan and cover with water. Bring to a rolling boil, then cook for 3 minutes. After that time drain them and set aside. Skip this step if you are using leftover cooked vegetables.
Drain the potatoes in a colander and then sit the colander with them in it over the now empty pan you used to boil them. Leave it uncovered so they can steam themselves dry.
Heat a small frying pan over a medium heat with about one tablespoon of oil and sauté the onion until golden brown. Remove from the heat and set aside. Use a few drops of water to sauté with to keep the recipe oil-free.
Mash the potato really well with the optional vegan butter and season generously with salt and pepper. Add a bit of unsweetened plant milk only if the potatoes seem a bit dry but don't add much because with all of the moisture from the cabbage things can easily get soggy.
Add the cooked vegetables and onions to the mashed potatoes. Mix everything together really well. Check seasoning again, adding more if necessary.
Spoon the mixture into a large oven proof dish then rough up the top with a fork. You can spray the top with oil or brush with melted vegan butter to make it extra crispy or leave it as it is. Bake in the pre-heated oven for 30-40 minutes or until the top is going brown and crusty. You can make it extra crispy by putting it under the broiler for a few minutes just before serving.
Heat a couple of large frying pans or skillets over a medium heat with a good coating of oil or vegan butter. Swirl the oil or butter around the pan and once it is hot add the Bubble and Squeak mixture. Dollop it in then smooth it out into a big, thick pancake shape. Cook it until it's really golden brown on the bottom. Then you can either be brave and flip it by placing a large plate or cutting board over the top of the pan, carefully inverting it so it comes out, then sliding it back into the pan so the crispy bottom is on the top, or you can just take it off the heat, brush the top with some more oil or vegan butter, then broil it (grill in the UK) until it's golden brown and crusty. The 2nd option is much easier!
Prepare the mixture as above but instead of spooning into an ovenproof dish, take handfuls and roll into balls (you want them kind of mid way between golf and tennis ball size). Place on a parchment paper lined baking sheet and press down gently with the palm of your hand to make a patty shape. Smooth them out a little around the sides if they crack.
Brush or spray with oil (optional) then either pan fry over a medium heat with some oil or butter until golden brown on both sides, or place in a preheated oven (400 °F / 200 °C) and bake for 30 minutes or until golden brown.
