Fixed problem with 'allowBackward' to match expected behavior

From a variable named `allowBackward` I would expect the following behavior:

If set to `YES` (or `true` in Swift) it would allow to go backward, so the index must be before the current index (so it actually is *backward*) **and** it must be *allowed*. This was working fine before my pull request and still is after it.

If set to `NO` (or `false` in Swift) it would disallow all previous steps from being chosen. This didn't work before because the *logical or* meant it was enough to simply be a previous step. So effectively the option `allowBackward` didn't do anything before this fix.

For me this change makes this option work again, I hope this helps some people out there.