Mixing characters in a string You have to write a function/program that takes input via the stdin/command-line arguments/function arguments, mixes up characters in a string, and then output the final string via the stdout.

Input will first contain a string (not empty or null), a space, and then an even number of non-negative numbers all separated by spaces. If input is taken via function arguments, the string will be the one of the arguments while the integers, which are seperated by a space, will be the other. You must swap the characters of the string at the indices corresponding to consecutive pairs of numbers.

For instance:

Hello_world! 0 6


must result in

wello_Horld!


Assumptions


You may choose between 0-based and 1-based indexing, and may assume that the given indexes will always be in range. 
The string will not be longer than 100 characters and will only contain ASCII characters in range ! to ~ (character codes 0x21 to 0x7E, inclusive). See ASCII table for reference.
The two indices in a pair may be identical (in which case, nothing is swapped in that step).


Scoring

This is code golf, so the shortest submission (in bytes) wins.

Test Cases

Hello_world! 0 6 =&gt; wello_Horld!
First 1 2 1 0 0 4 =&gt; tFisr
(Second!$$) 8 7 10 1 =&gt; ()econd$!$S
~Third~ 0 0 6 6 0 6 6 0 =&gt; ~Third~
CJam, 11 bytes
rr{irie\r}h

How it works
This is a slightly different approach, in which I simply run a do-while loop till I have pairs of numbers left in the input.
r                 e# Read the first string
 r                e# Read the first number of the first number pair in the input
  {      }h       e# Do a do-while loop
   i              e# Convert the first number from the pair to integer
    ri            e# Read the second number from the pair and convert to intger
      e\          e# String X Y e\ works by swapping the Xth index with the Yth index in the
                  e# String
        r         e# This is our exit condition of the do-while loop. If we still have
                  e# a number on the input left, that means there are more pairs to swap.
                  e# Otherwise, we exit the loop and the result is printed automatically

Try it online here