Anonymous Monk,
I may have missed it but I don't think anyone who has replied so far has pointed out that what you have really isn't a traditional dispatch table. Have a look at Implementing Dispatch Tables. In your approach, all dispatches have to be integer based (array) where as with a hash, you have the luxury of using any scalar value.