class ActionDispatch::Http::ParameterFilter::CompiledFilter

def call(original_params, parents = [])

def call(original_params, parents = [])
  filtered_params = {}
  original_params.each do |key, value|
    parents.push(key) if deep_regexps
    if regexps.any? { |r| key =~ r }
      value = FILTERED
    elsif deep_regexps && (joined = parents.join('.')) && deep_regexps.any? { |r| joined =~ r }
      value = FILTERED
    elsif value.is_a?(Hash)
      value = call(value, parents)
    elsif value.is_a?(Array)
      value = value.map { |v| v.is_a?(Hash) ? call(v, parents) : v }
    elsif blocks.any?
      key = key.dup if key.duplicable?
      value = value.dup if value.duplicable?
      blocks.each { |b| b.call(key, value) }
    end
    parents.pop if deep_regexps
    filtered_params[key] = value
  end
  filtered_params
end