public boolean IsAllAffectedVariablesMatched(HashMap<PVariable, Object> matchingVariables) {
   // mhm, can be evaluated when not all variables bound? no
   for (PVariable one : this.affectedVariables) {
     if (one.isVirtual() == false
         && Utils.isRunning(one) == false
         && matchingVariables.get(one) == null) return false;
   }
   return true;
 }