if i understand correctly above, hosts will always be an array, even if not specified. and always set in the $request array. same for the path. i wonder why we box request into an array above just to painfullly unbox it here again. (i know, the existing code started like that too). what about making all explicit and required parameters without defaults? this is a protected method so the BC break should be acceptable.