In a large bowl, whisk together the flour and salt. Add the cold butter cubes to the flour mixture. Use a pastry blender or your fingers to cut the butter into the flour until the mixture resembles coarse crumbs with some pea-sized pieces of butter remaining. Gradually add the ice water, one tablespoon at a time, mixing until the dough just comes together. Be careful not to overmix.
Divide the dough in half, flatten each half into a disc, wrap them separately in plastic wrap, and refrigerate for at least 30 minutes. This chilling process is crucial for a flaky crust.
In a large bowl, combine the cherries, sugar, and cornstarch. Stir well to coat the cherries evenly. Add the amaretto, lemon juice, and almond extract. Mix gently to combine all ingredients.
On a lightly floured surface, roll out one of the chilled dough discs into a 12-inch circle. Carefully transfer the dough to a 9-inch pie plate. Trim the edges and crimp or flute the crust.
Pour the cherry filling into the pie crust. Dot the top of the filling with the small pieces of butter.
Roll out the second chilled dough disc into a 12-inch circle. Carefully place it over the cherry filling. Trim the edges and crimp or flute the crust to seal the edges. Cut several slits in the top crust to allow steam to escape while baking.
If desired, brush the top crust with the egg wash (beaten egg and milk) for a golden-brown finish. This step adds a beautiful shine to your Cherry Pie with Amaretto.
Preheat your oven to 375°F (190°C). Bake the pie for 45-55 minutes, or until the crust is golden brown and the filling is bubbly. If the crust starts to brown too quickly, you can cover the edges with aluminum foil.
Let the pie cool completely on a wire rack for at least 3-4 hours before slicing and serving. This allows the filling to set properly.