add Associate Array support for generateCartesianProduct()