The publishTraverse is responsible to handle one step (usually identified by the material between two consecutive /s) in the traversal process; the result is an object that can then handle the next step, either directly or via another publishTraverse view.
There are ways to handle multiple steps together by modifying the internal Request data controlling the traversal. However, the approach is not easy. To use it, you must understand what happens in ZPublisher.BaseRequest.BaseRequest.traverse (this is the traversal implementation). In short: request['TraversalRequestNameStack'] contains the steps still to do, in reverse order. In order to generate correct url information in the request, it may be necessary to update request.steps or request._steps.