Failure-Driven Program Repair