Measure the flour into a dish that will fit into the freezer (it doesn't need to have a lid) and cut the shortening and butter into small - approximately 1/2-inch dice and toss them in the flour. Put in the freezer for 10 minutes.
I tend to make pastry in my stand mixer, but a processor's fine too. In whatever contraption - fitted with the flat paddle in the one, with the double-bladed knife in the other - mix until you have a mixture that resembles coarse uncooked oatmeal. Now, dribble in the chilled salted water, slowly, with the motor still running, until the dough looks as if it's about to cohere, but stopped short of its actually clumping totally. Turn out of the processor (though you could still do this in the bowl of the mixer) and squidge together with your hands until all the pastry forms a cohesive ball. Dribble in a little more water if you feel it needs it. Divide into 2 pieces of equal size and form it into fat disks. Cover with plastic wrap and leave in the refrigerator for 20 minutes. And this can be done a good day or 2 in advance if it helps.
Preheat the oven to 400 degrees F.
Put the tomatoes in a bowl, cover with boiling water from the kettle and leave for 5 minutes. Drain, run under the cold tap, then peel, seed and chop roughly (or use canned tomatoes, chopped and drained). Peel and chop the onions, hard-boiled eggs and olives, too.
In a large frying pan over medium heat, warm the oil. Cook the chopped onions until softened and beginning to color, turning the flame down to low if they look as if they're sticking. Turn the heat back to medium and add the chopped tomatoes and cook, stirring for a minute or so before adding the beef. Stir well, breaking up the clumps of meat with your wooden spoon as you go, then when the meat's browned, stir in the chopped eggs and olives and season with the allspice and salt and pepper. Cook over gentle heat for about 20 minutes, stirring occasionally.
Get a baking sheet out, and flour a surface and rolling pin. Remove the pastry from the refrigerator and roll out 1 of the disks until you have a thin, but not exaggeratedly so, rough square that will fit on the baking sheet, then place it on the baking sheet. Now roll out the second disk and leave it there while you cover the layer on the baking sheet with the ground beef mixture, leaving a margin of about 1-inch all around. With a bit of cold water and your fingers, dampen this edge. Place the second square of pastry on top and press the edges together to seal. Now, roll these edges back on themselves once or twice, then get a fork and press it, the tines curved side down, against this rolled border. Prong the top of the pastry to make air holes and then beat the egg with a generous sprinkling of salt and brush the top and edges of the pie with it to glaze.
Put it into the preheated oven for 20 minutes, by which time the pastry will be golden and cooked. Slice it into fat oblongs and eat warm with a vegetable or salad, or cold, wrapped in a napkin and without ceremony or cutlery.
Recipe courtesy of Nigella Lawson, 2007