For the spicy turkey filling: using a large saucepan fry onion and celery in the butter for 3 minutes. Add the turkey and fry for a further 2-3 minutes to seal. Sprinkle in chilli powder and paprika, stir well for 1 minute.
Add beans, mushrooms, pepper, garlic, tomatoes, puree, herbs, salt and pepper. Stir to form a thick mixture, bring to boil.
Cover and simmer for 30 minutes, stirring occasionally then pour into 4-6 deep ovenproof dishes (or one large dish).
For the topping: place milk, butter and flour in a medium sized saucepan. Bring to the boil, stirring constantly and simmer for 2 minutes.
Remove from heat, and stir in half the cheese, cool slightly. Beat in eggs and seasoning to taste.
Pour over turkey mixture and sprinkle with reserved cheese, bake for 25-30 minutes (45-50 minutes for large dish), until golden brown and serve with a crisp salad.