Laravel controller does not get correct parameter from route definition, and enters in the wrong controller function

I have this route defined:

Route::match(['get', 'post'], '/{class}/{function}/', [OldBackendController::class, 'apiV1']);

If I do this request:

POST /api/v2_1/wishlist/archive

Laravel enters int the OldBackendController, and the value of $class variable (in the controller), is this:

api/v2_1/wishlist

Why? It shouldn’t enter in the controller, cause the request does not contains 2 variables, but 4.

The strange thing is if in the controller I print $request->segments() value, I get all 4 segment:

Array
(
    [0] => api
    [1] => v2_1
    [2] => wishlist
    [3] => archive
)