1. Preheat oven to 180 °C.
2. Wash and dry the aubergines, trim off the stems, and cut them in half, lengthwise.
3. Using a small knife or spoon, scoop out the pulp, leaving a little intact around the shell of the aubergine so that it does not collapse. Do not to break through the skin.
4. Chop the pulp into small pieces and set aside.
5. Heat 2 tablespoons of the oil in a saucepan and fry the onion, then add the garlic and mince and cook gently for 5 minutes.
6. Stir in the aubergine pulp, tomatoes, oregano, parsley, salt and pepper, and simmer till most of the liquid from the tomatoes has been absorbed.
7. Remove from the heat, and set aside while you make the béchamel sauce.
8. Melt the butter in a saucepan over a low heat and, as soon as it starts to foam, add the flour and stir with a wooden spoon until it is lump-free.
9. Remove from the heat and add the milk slowly, stirring constantly with a whisk.
10. Return to the stove and cook until the sauce begins to thicken.
11. Remove from the heat and season to taste with salt, pepper, and nutmeg.
12. Allow the sauce to cool for a few minutes before stirring the egg yolks into the sauce in a steady stream.
13. To finish, heat a little oil in a frying pan and lightly sauté the top of the aubergine halves - do this in batches.
14. Oil the base of a large roasting pan and place the aubergine halves onto it, cut side facing up.
15. Spoon a little of the filling into each aubergine half.
16. Sprinkle with some of the grated cheese, and then continue spooning the filling to the top.
17. Press down and spoon over some béchamel sauce.
18. Garnish with a cherry tomato and a dusting of grated Parmesan.
19. Place in the oven and bake for about 50 minutes, or until the aubergine is tender and the tops golden brown.