route dereferences wrong type in t_word union
In route_list (and possibly route_anything), the first branch is based off x->x_type
OR the if we're in x->x_mixed
mode.
Further down the each element of the routeelement array is dereferenced to check against the incoming value. But it always checks the w_float field of the union, which we shouldn't be doing if we originally set it in route_new as a t_symbol.
I can't trigger a bug from this, but it's at least conceivable that one of the routeelements could be set to a symbol value that gets read out as a w_float and creates a false positive match.
Anyway, we should be reading the other union type here since we're not type-punning.