code: function parseQuery(str) {
      var i, ps, p, n, k, v, l;
      var pairs = [];
  
      if (typeof(str) === 'undefined' || str === null || str === '') {
        return pairs;
      }
  
      if (str.indexOf('?') === 0) {
        str = str.substring(1);
      }
  
      ps = str.toString().split(re.query_separator);
  
      for (i = 0, l = ps.length; i < l; i++) {
        p = ps[i];
        n = p.indexOf('=');
  
        if (n !== 0) {
          k = decode(p.substring(0, n));
          v = decode(p.substring(n + 1));
          pairs.push(n === -1 ? [p, null] : [k, v]);
        }
  
      }
      return pairs;
    }
docs: Breaks a query string down into an array of key/value pairs
  @param  {string} str query
  @return {array}      array of arrays (key/value pairs)