If you can run multiple motors simultaneously at the same speed and direction, then you can connect all of the PWM pins to the single MCU PWM pin. Also connect together all of the direction pins and connect them to one of the MCU GPIO pins.
2 of the remaining 3 GPIO pins can be used to control a serial in, parallel out (SIPO) shift register such as the 74HC595. This IC is an 8 bit shift register, but we'll see later how they can be daisy-chained to provide as many parallel output bits as you need. If you chain two of them, then you'll have a 16 bit output shift register, but you can use just the first 10 outputs and ignore the other 6.
In essence, a SIPO shift register takes bits one at a time on the input (i.e. serial communication) and presents them all at once on separate, parallel outputs. Typically there is a data input pin and a clock pin. On the 74HC595 the data pin is 14 and the clock is applied to pin 10. Every time the clock pin is cycled, a new bit is accepted at the data input, and all of the existing bits are shifted through the register one output at a time. The link above has animation which explains it pretty well.
So, we connect each output to the enable pin of one of the motor drivers, then start shifting zeros and ones into the shift register until the outputs have the right combination of motors enabled. Then, you stop cycling the clock pin and start the PWM. You could also use the one remaining GPIO pin to control the RCLK pin as a latch as explained in the link above.
Daisy chaining is simple. With two (or more) 74HC595, connect the "function" pins (VCC, GND, clock, latch, clear, etc.) to all of the 74HC595's. Feed data bits into pin 14 of the first one. After clocking in 8 bits, the data will start spilling out pin 9. So, connect pin 9 (output) of the first IC to pin 14 (input) of the second. The second IC will effectively pick up where the first left off and serve as the 9th through 16th bits. There's a good explanation it here.