Remove rawurldecode from the _parseArgs function in CakeRoute since urldecode is already called on the URL string in CakeRoute::parse() when creating the $route array that is passed to _parseArgs. 
The result of the double urldecodes is parameters with meaningful '%' signs being stripped away on accident, and the web server reporting that the requested address doesn't exist.
Fix typo that removed '$' from '$key'
_Trailing_ and $this->keys also do not need to be urldecoded. Both _trailing_ and $this->keys gets set in _writeRoute, which also makes the regex that used to create the array $route.
Any keys in $route that match [_trailing_] or any values in $this->keys are put there through the exection of preg_match. The URL is decoded before being passed to preg_match, which means the values
inside of [_trailing_]etc. have already been decoded.
Merge pull request #2709 from MelvinRoss/url-fix

Fix double url decoding bug
Remove pointless code.

After the changes in #2709 this code just heats the earth.
Check data with isset() before accessing it.

Don't blindly access data that may not exist.

Fixes #2712
Improves next() and prev() documentation

Adds the explanation for the URL available option, which is really useful when dealing with non-default CakePHP routes, now lacking from the official documentation.
Merge pull request #2713 from GiampaoloFalqui/patch-1

Improves next() and prev() documentation
Update version number to 2.4.5