Scrub the potatoes and cut them into cubes. (I leave mine unpeeled, but if you want you can peel them before dicing.) Place potatoes in a large pot and cover with water. Bring to a boil and simmer until potatoes are tender. Reserve a cup of their cooking water, if possible, and drain. Place in a large bowl, add the non-dairy milk, and mash until smooth, adding a little of the potato-cooking water if they seem too dry. Add salt and freshly ground pepper to taste and set aside in a warm place.
While the potatoes are cooking, make the “pie” filling. Heat a large non-stick or cast iron skillet on a medium-high burner and add the onions. Sauté until onions are translucent. Add the garlic, carrots, celery, and mushrooms, and sauté for 3 more minutes.
Add the vegetable broth, kidney beans, green beans, reserved celery leaves, and herbs. Simmer on medium heat for 20 minutes and all vegetables are tender. Add salt and pepper to taste (I added a little hickory smoke salt). There should still be some liquid in the pan, but if it has become too dry, add a little of the potato-cooking water. Add the spinach and stir until it’s completely wilted. Mix the corn starch with the 2 tablespoons water until smooth, and add it to the pan. Cook, stirring, until mixture has thickened.
Spoon the potatoes evenly over the top of the filling and sprinkle with chopped rosemary. If potatoes have cooled, put the skillet under the broiler for a minute or two. Serve immediately while hot.
I used kidney beans here because I like their flavor and texture in this dish. But feel free to substitute about 1- 1/2 cups of any cooked beans or lentils. Or, if faux meats are your thing, rehydrate some TVP, crumble up a couple of Boca burgers, or chop up some seitan and use it instead.