Closes #778. Checking result.used() before forward

I'm not sure if its the best implementation, but it fixes #778 without broke forward. 
@lucascs, you're wrong... `result.use(logic()).forwardTo(...)`still working too.
I didn't change the `use` behavior. Only default `forwardTo` that doesn't set as used.