Soak the dried porcini in boiling water for 15–20 minutes, then strain, reserving the liquid. Filter the soaking liquid to remove grit and finely chop the porcini.
Rinse the lentils and add them to a saucepan with enough vegetable stock to cover. Simmer for about 25 minutes until tender but still holding their shape. Drain and reserve 200 ml of the cooking liquid.
Heat the olive oil in a large sauté pan over medium heat. Add the onion and carrots and cook for 8–10 minutes until softened. Stir in the garlic, tomato paste, thyme, rosemary, and smoked paprika, and cook for 1 minute.
Pour in the red wine and simmer for 2–3 minutes, scraping the pan, until the liquid reduces.
Add the chopped porcini, soy sauce, Worcester sauce, cooked lentils, 150 ml of the porcini soaking liquid, and about 200 ml of the lentil liquid. Simmer uncovered for 10–15 minutes, stirring occasionally, until the mixture thickens. Season to taste.
Cook the potatoes in salted boiling water for 12–15 minutes, until tender. Drain, allow to steam dry briefly, then mash with the butter and milk until smooth. Season and stir in the Dijon mustard if using.
Spoon the filling into a 2-litre oven dish. Spread the mashed potatoes over the top, starting at the edges, and roughen the surface with a fork.
Bake at 200°C (fan 180°C) for 25–30 minutes, or until the topping is golden and the edges are bubbling. Grill for 2–3 minutes at the end if you want extra colour.