def []=(key, val)
      supported_option?(key) || raise(UnsupportedOptionError, key.inspect)
      values[key] = val
    end
def []=(key, val)
      supported_option?(key) || raise(UnsupportedOptionError, key.inspect)
      values[key] = val
    end
@param values [Hash]

 @raise [UnsupportedOptionError] if given values contain unknown options
 Set option key to val.

 @param key [Symbol]
 @param val [Object]

 @raise [UnsupportedOptionError] when trying to set an unknown option