support optional param substitution in Router#_reverseHash, partially fix #19