# File lib/hashery/path_hash.rb, line 46
    def [](key)
      rg = Regexp.new("^#{key}/?")
      start_obj = if @constructor == OrderedHash
        @constructor.new((@flat.instance_variable_get(:@keys_in_order) || []).collect {|e| e.gsub(rg,'')})
      else
        @constructor.new
      end
      v = @flat.has_key?(key) ? @flat[key] : self.class.new(@flat.reject {|k,v| !(k == key || k =~ rg)}.inject(start_obj) {|h,(k,v)| h[k.gsub(rg,'')] = v; h})
      v.is_a?(self.class) && v.empty? ? nil : v
    end