code: private static boolean isRunnable(FilterTargetData targetData, String[] filters) {
  		if (filters == null || filters.length == 0) {
  			return true;
  		}
  		
  		for (String filter : filters) {
  			String[] filterSplitted = filter.split(":");
  
  			// We must evaluate all the filters and return only when there is a valid match
  			if (
  				(filterSplitted.length == 1 && targetData.anyMatch(filterSplitted[0])) || // Any filter
  				("key".equalsIgnoreCase(filterSplitted[0]) && targetData.keyMatch(filterSplitted[1])) || // Key filter
  				("name".equalsIgnoreCase(filterSplitted[0]) && targetData.nameMatch(filterSplitted[1])) || // Name filter
  				("tag".equalsIgnoreCase(filterSplitted[0]) && targetData.tagMatch(filterSplitted[1])) || // Tag filter
  				("ticket".equalsIgnoreCase(filterSplitted[0]) && targetData.ticketMatch(filterSplitted[1])) // Ticket filter
  			) {
  				return true;
  			}
  		}
  
  		return false;
  	}
docs: Define if a test is runnable based on the object that represents the test
  meta data
  
  @param targetData The meta data
  @param filters The filters
  @return True if the test can be run