module Hashie::Extensions::StrictKeyAccess

def key(value)

def key(value)
  result = super
  if result.nil? && (!key?(result) || self[result] != value)
    fail KeyError, "key not found with value of #{value.inspect}"
  else
    result
  end
end