Roy may have a weakness against leg-spin, but he was up against a poor leg-spinner (Shadab) who averages almost close to 40 against the major teams. Let's say the play each other 10 times. How many times would you back a mediocre spinner like Shadab to dismiss Roy in the first over?
Every good or even the best player can be put under the hammer by another bunch, true, but if a 6th ranked team has to beat a top ranked team, the top ranked team must perform below its capability. This is why their is a difference in rankings.
There is no doubt Pakistan produced a very good performance, but again, a 6th ranked side cannot beat a top ranked side if both produce very good performances. The top ranked side has to underperform for the 6th ranked side to prevail. If both teams are equal at their best, then England wouldn't be 1st and Pakistan wouldn't be 6th.