# File lib/map.rb, line 686
  def has?(*keys)
    keys = key_for(keys)
    collection = self

    return Map.collection_has?(collection, keys.first) if keys.size <= 1

    keys, key = keys[0..-2], keys[-1]

    keys.each do |k|
      if Map.collection_has?(collection, k)
        collection = Map.collection_key(collection, k)
      else
        collection = nil
      end

      return collection unless collection.respond_to?('[]')
    end

    return false unless(collection.is_a?(Hash) or collection.is_a?(Array))

    Map.collection_has?(collection, key)
  end