state machine should handle your requirement.
define a state machine with two states like:
A. assign task by approver
B. respond task by assignee
configure state machine so that default state is A. within the A state (branch) assign workflow task to the approver.
once approver responses the workflow task (and so defines an assignee) change the state to B. within the B branch assign another workflow task to given assignee.
if assignee rejects the task change state machine state back A so that approver reassigns the task.
Thanks, it worked, but at first I forgot to end my state machine and the administrator was none too happy