If you're having problems with the controller refusing to reverse - it may be that your input voltage is too low.
The relay's coil seems to dictate the maximum voltage this circuit can handle. It's rated at 130% of nominal - or 15.6v.
Unlike many commercial motor drivers - this driver does not have any "protection" - so if you abuse it too much - it will fail. Fortunately - the component most likely to burn out is the transistor with the "Enable" pin - so you're only out a $1.50.
It should be possible to build a version of this driver that supports lower voltages by swapping out the relay with one having a lower "pickup" voltage. I chose the one featured in this project since Radio Shack stocked it.
This project uses TIP120 "Darlington" transistors. These transistors are actually two transistors chained together into one. This gives them much higher "gain" - meaning they can use a very small current to switch a much larger current. A TIP120 on its own provides a super-simple way to do single-direction motor control.
The TIP120 is rated at 5 amps - but will overheat without a heatsink if run this hard continuously. I've verified the Radio Shack 276-1363 heatsink can be installed without re-soldering everything (you may need to bend stuff a little). The heatsink should be installed on the transistor with the "Enable" pin using a #6 bolt and nut (screw it on tight!).
You can alternately make your own heatsink out of a piece of aluminum can. Just cut a 1"x1" piece of the can using scissors - bend up the sides a little, and drill an 5/32" hole to mount it. This may not work as well as a proper heatsink - but will definitely help.
Swapping out both the TIP120 and relay with higher-rated parts (readily available online) should let you build a much beefier version of this motor control fairly cheaply.