Support languages like Hebrew

Without urldecode() the compare look like this:
$pattern = 'אודות'
$this->path = '%d7%90%d7%95%d7%93%d7%95%d7%aa'
So it will always fail.
With urldecode it look like this:
$pattern = 'אודות'
$this->path = 'אודות'
As it should :)
Use array_values to rekey filtered array

If the path had an empty segment, for instancem 'foo//bar', requesting segment
2 would return the default value instead of 'bar'
Merge pull request #3573 from colindecarlo/bug-Request-segment-method-empty-segment

[Bug] Request::segment returns incorrect value when path contains an empty segment
Merge pull request #3565 from ChenOhayon/4.1

Support languages like Hebrew
Remove decode.