Preheat oven to 350°F. Line muffin pan with 12 cupcake liners.
In a large mixing bowl, whisk together yogurt, soy milk, oil, sugar, vanilla extract (if using) and rosewater.
Sift the flour, cornstarch, baking soda, baking powder, cardamom and salt. Mix until smooth, few small lumps are fine.
Fold in chopped pistachios.
Fill liners ¾s of the way. Bake for 20-22 minutes or until a toothpick inserted in the center comes out clean.
Transfer to a cooling rack and let cool completely before frosting.
With a fork, cream together half of the confectioners sugar and butter/ margarine till mixture resembles fine crumbs.
Add in soymilk/ milk, rose water and rose syrup and beat in the remaining confectioner's sugar. Mixture should have the consistency of a thick batter with a satiny sheen. Adjust consistency by adding soymilk or confectioner's sugar.