If the router can be reflashed to dd-wrt, you should check to see whether it has a serial port hiding under the hood (some of them have a TTL-level erial port that you could wire right to the Arduino Tx and Rx pins). That would save you the cost and hassle of adding an Ethernet board.
You can put more than one shield at a time on the Arduino by using "stackable" headers
. Note that the Ethernet shield has tall components on it, so you may need to build the top shield with stackable headers, too. Or use wire-wrap-style headers to get longer pins.
There are multiple types of motor shields out there. Make sure you check which pins they use to make sure there's no conflict with the Ethernet.
Also, motor shields are only good for small-to-medium motors. If you're making something big enough to haul a router around, you may need to use a seperate controller, like the ones from Pololu, that can handle bigger motors.