code: function filterVariablePath(props) {
  
  	var filtered = [],
  		literal = '',
  		i = 0;
  	for (i; i < props.length; i += 1) {
  		if (props[i] && props[i].charAt(0) !== props[i].charAt(props[i].length - 1) &&
  				(props[i].indexOf('"') === 0 || props[i].indexOf("'") === 0)) {
  			literal = props[i];
  			continue;
  		}
  		if (props[i] === '.' && literal) {
  			literal += '.';
  			continue;
  		}
  		if (props[i].indexOf('"') === props[i].length - 1 || props[i].indexOf("'") === props[i].length - 1) {
  			literal += props[i];
  			filtered.push(literal);
  			literal = '';
  		} else {
  			filtered.push(props[i]);
  		}
  	}
  	return _.compact(filtered);
  }
docs: the varname is split on (/(\.|\[|\])/) but it may contain keys with dots, e.g. obj['hello.there'] this function searches for these and preserves the literal parts