bool matches(List<dynamic> args) { if (args[0].runtimeType == String && (args[0] as String).isEmpty) return false; return QuerySelector.matches(this, args.first); }