Does the dial plan support arrays or multivalue variables?

Referencing my snippet from your earlier post.

You could think of:

                        switch  (${STEP-${IDX}-TYPE})

kind of like

typedef struct
        {
// ints
       	int                             active;
        int                             type;
// strings
        char                            data[256];
        char                            prompt[256];
        }                               STEP;

static  STEP                            step[100];

        switch                          (step[idx].type)

But Asterisk really sees it as:

                        switch  (${STEP-42-TYPE})