Couldn't this just be the change? Smaller, simpler:

```diff
diff --git a/lib/faraday/parameters.rb b/lib/faraday/parameters.rb
index 136c43b..ec21843 100644
--- a/lib/faraday/parameters.rb
+++ b/lib/faraday/parameters.rb
@@ -51,6 +51,8 @@ module Faraday
             buffer << "#{to_query.call(new_parent, val)}&"
           end
           return buffer.chop
+        elsif value.nil?
+          return parent
         else
           encoded_value = escape(value)
           return "#{parent}=#{encoded_value}"
```