It's not that hard to (legally) collude on something like this, especially with an effectively-two-participant field, the way Uber and Lyft are in many markets. It's one of the basic solutions to the iterated prisoner's dilemma (though it's by no means guaranteed).