# File lib/hashery/path_hash.rb, line 104
    def delete(key,&block)
      value = @flat.has_key?(key) ? @flat[key] : self.class.new(@flat.reject {|k,v| !(k == key || k =~ Regexp.new("^#{key}/"))}.inject({}) {|h,(k,v)| h[k.split('/',2)[1]] = v; h})
      return block.call(key) if value.is_a?(self.class) && value.empty? && block_given?
      @flat.keys.reject {|k| !(k == key || k =~ Regexp.new("^#{key}/"))}.each {|k| @flat.delete(k)}
      return value
    end