It seems that any "loose" keywords here get bundled into request params, but I'm kinda surprised that nobody complained about how Connection._method accepts **kwargs and then uses that as one of several parameters to overwrite the local definition of kwargs as a dict of keyword parameters to request. Wow; that's twisted. Using a different name would have been better: it's really easy when skimming through to assume that the **kwargs in the request call is the same kwargs passed into _method. Ah well; that's not really in scope for this PR.
Originally posted by @dbutenhof in #3235 (comment)