Preheat oven to 375 degrees. Prepare 2 baking sheets with cooking spray, parchment paper, or silpat liners.
Over medium-high heat, combine butter, salt, sugar, and water. Bring to a boil. Stir in flour with a wooden spoon. Continue stirring, until a thin film forms on the bottom of the pan. (The spoon dragged through should leave a line.)
Remove from heat and transfer to a bowl. Allow to cool for 3 minutes. At eggs, one at a time. Stir very well after each addition. At first, the mixture will seem to separate and clump. Keep stirring! Once the mixture is smooth again, add the next egg and repeat until all 4 eggs are incorporated.
In a small bowl, whisk together remaining egg and 1 tbsp water.
Fill a pastry bag or ziploc bag with dough. Cut off the tip about 1/2 inch up, or fit with a 5/8 inch plain tip. Pipe 1-1.5 inch rounds onto the pans. Dip your finger in water and smooth the pointed peaks down.
Brush tops with egg wash.
Bake until golden brown, about 30 minutes. Let cool for 5-10 minutes and remove to a wire rack to cool completely.
Fill another pastry bag with prepared pastry cream, fitted with a small, sharp tip. Poke the tip into the side of the cream puff, and fill with pastry cream.
Optional: Melt chocolate and dip tops of cream puffs into melted chocolate.
Serve immediately, or refrigerate for 1-2 days. You can also freeze for up to one month.