public boolean matches(CharSequence tagname,
			Map<CharSequence, CharSequence> attr, int index) {
		// MATCH TAGNAME
		if (!"*".equals(this.tagname) && !tagname.equals(this.tagname))
			return false;

		// MATCH ATTRIBUTES
		if (this.attributes.size() != 0) {
			if (!matchAttributes(attr))
				return false;
		}

		// MATCH NTH-CHILD
		if (nthChild > 0 && index != nthChild)
			return false;

		return true;
	}