Improvement: |key| of |Shortcut| should be case-insensitive.