module Hashie::Extensions::DeepFind

def _deep_find_all(key, object = self, matches = [])

def _deep_find_all(key, object = self, matches = [])
  if object.respond_to?(:key?)
    matches << object[key] if object.key?(key)
    object.values.each { |v| _deep_find_all(key, v, matches) }
  elsif object.is_a?(Enumerable)
    object.each { |v| _deep_find_all(key, v, matches) }
  end
  matches
end