title: preserve-order set true does not run TestNG tests in order with group dependencies defined
body: <p>I am trying to run grouped TestNG tests. The given xml is a test in testng.xml:</p>
  
  <pre><code>&lt;test name="demo test" preserve-order="true"&gt;
         &lt;groups&gt;
           &lt;run&gt;
             &lt;include name="openlogin"/&gt;
             &lt;include name="login"/&gt;
             &lt;include name="searchPatient"/&gt;
             &lt;include name="scheduleBySearch" /&gt;
             &lt;include name="openDashboardFromPatientToday"/&gt;
             &lt;include name="openPatientChart"/&gt;
             &lt;include name="referralSearch"/&gt;
             &lt;include name="referralNotes"/&gt;
             &lt;include name="removeReferral"/&gt;
             &lt;include name="nonExistingReferralSearch"/&gt;
           &lt;/run&gt;
  
           &lt;dependencies&gt;
              &lt;group name="removeReferral" depends-on="referralNotes"/&gt;
              &lt;group name="referralNotes" depends-on="referralSearch"/&gt;
              &lt;group name="referralSearch" depends-on="openPatientChart"/&gt;
              &lt;group name="openPatientChart" depends-on="openDashboardFromPatientToday"/&gt;
              &lt;group name="openDashboardFromPatientToday" depends-on="scheduleBySearch"/&gt;
              &lt;group name="scheduleBySearch" depends-on="searchPatient" /&gt;
              &lt;group name="searchPatient" depends-on="login" /&gt;
              &lt;group name="login" depends-on="openlogin"/&gt;
           &lt;/dependencies&gt;
          &lt;/groups&gt;
  
          &lt;classes&gt;
           &lt;class name="xtr.webaut.sanitytests.LoginTests"/&gt;
           &lt;class name="xtr.webaut.sanitytests.PatientSearchTest"/&gt;
           &lt;class name="xtr.webaut.sanitytests.PatientScheduleTests"/&gt;
           &lt;class name="xtr.webaut.sanitytests.PatientTodayTests"/&gt;
           &lt;class name="xtr.webaut.sanitytests.PatientDashboardViewTests"/&gt;
           &lt;class name="xtr.webaut.sanitytests.PatientChartReferralTests"/&gt;
          &lt;/classes&gt;
      &lt;/test&gt;
  </code></pre>
  
  <p><br>
  Here there is a group "nonExistingReferralSearch" that I don't want to be dependent upon any other group. But I want it to be executed in the specified order and I have set "preserve-order" as true for the <code>&lt;test&gt;</code>. While execution, I find that TestNG does not execute the non-dependent group in order. It executes that group immediately after the group "openlogin" whereas I am expecting it to get executed in the end. 
  <br><br>Is it wrong to define dependencies as well as tell TestNG to maintain an order of execution? Is there an unknown priority defined that TestNG will execute any non-dependent tests/groups first and then the dependent tests? I hope it is not that inflexible.<br> 
  <br>
  Even for a generic scenario in a <code>&lt;test&gt;</code>, is it not possible to run some test methods/groups without any dependency and some test methods/groups with dependencies, <strong>in an order</strong>?</p>