code: function(selector, root, firstOnly, skipNative) {
          root = root || Y.config.doc;
          var ret = [],
              useNative = (Y.Selector.useNative && Y.config.doc.querySelector && !skipNative),
              queries = [[selector, root]],
              query,
              result,
              i,
              fn = (useNative) ? Y.Selector._nativeQuery : Y.Selector._bruteQuery;
  
          if (selector && fn) {
              // split group into seperate queries
              if (!skipNative && // already done if skipping
                      (!useNative || root.tagName)) { // split native when element scoping is needed
                  queries = Selector._splitQueries(selector, root);
              }
  
              for (i = 0; (query = queries[i++]);) {
                  result = fn(query[0], query[1], firstOnly);
                  if (!firstOnly) { // coerce DOM Collection to Array
                      result = Y.Array(result, 0, true);
                  }
                  if (result) {
                      ret = ret.concat(result);
                  }
              }
  
              if (queries.length > 1) { // remove dupes and sort by doc order 
                  ret = Selector._sort(Selector._deDupe(ret));
              }
          }
  
          return (firstOnly) ? (ret[0] || null) : ret;
  
      }
docs: Retrieves a set of nodes based on a given CSS selector.
  @method query
  
  @param {string} selector The CSS Selector to test the node against.
  @param {HTMLElement} root optional An HTMLElement to start the query from. Defaults to Y.config.doc
  @param {Boolean} firstOnly optional Whether or not to return only the first match.
  @return {Array} An array of nodes that match the given selector.
  @static