code: function getNodes(tags, context) {
    var keys = objectKeys(tags);
    var returns = [];
  
    // keys to uppercase to compare to nodeName
    for(var i=0; i<keys.length; i++) keys[i]=keys[i].toUpperCase();
  
    // if context is tag
    if(keys.indexOf(context.nodeName.toUpperCase()) >= 0) {
      return [context];
    };
  
    //Mount all top-level child tags within context
    var nodes, el, mount, n;
    for(var i=0; i<keys.length; i++) {
      nodes = context.getElementsByTagName(keys[i]);
      for(n=0; n<nodes.length; n++) {
        el = nodes[n];
        mount = true;
        while(el = el.parentNode) {
          if(keys.indexOf(el.nodeName.toUpperCase()) >= 0) {
            mount = false;
            break;
          }
          if(el === context) break;
        }
        if(mount) returns.push(nodes[n]);
      }
    }  
    return returns;
  }
docs: ///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////