For the classic cream cheese dough: Combine the butter and cream cheese in the bowl of a stand mixer fitted with a paddle attachment. Beat on medium speed until smooth and creamy. Switch to low speed and gradually add in the flour. Stop the mixer and scrape the bowl and beater to make sure it is well mixed. The dough will be sticky. Divide the dough into three portions, wrap each in plastic wrap and flatten to a disk. Refrigerate for a minimum of 2 hours or overnight.
For the filling: Pulse the dates with the cinnamon, ginger and cloves in a food processor, adding a tablespoon of apple juice at a time. The filling needs to be spreadable but can have few chunks remaining. Mix in the walnuts.
To assemble the rugelach: Dust the work surface with the flour and roll each dough portion to a 10-inch circle. Lightly brush each circle with the melted butter, then evenly spread a thin layer of the filling. Using a pizza wheel, divide each circle into four quarters. Divide each quarter into three thin triangles, for a total of 12 wedges. Roll each triangle from the curved side to the point and place on a parchment-lined or nonstick baking sheet. Refrigerate the sheets for 30 minutes while preheating the oven to 350 degrees F. Note: The rugelach can be frozen on the trays and then stored in a zip-top bag in the freezer for baking fresh later.
Carefully brush each rugelach with the egg wash, trying to avoid drips. Bake for 15 to 20 minutes until deep golden. Cool on a rack and store in an airtight container for up to 3 days.