Please do correct me if I am wrong, but isn't multiple dispatch basically typeclasses + pattern matching?
Multiple dispatch means functions are generic, and all arguments are considered when deciding which implementation to call.
Snigl supports both multiple dispatch and pattern matching, as does Common Lisp.