code: public function canMoveBackward()
      {
          $moveBack = false;
          $session  = $this->getTestSession();
          if ($this->isAdaptive()) {
              $positionInCatSession = array_search(
                  $this->getCurrentCatItemId(),
                  $this->getShadowTest()
              );
  
              if ($positionInCatSession === 0) {
                  // First item in cat section.
                  if ($session->getRoute()->getPosition() !== 0) {
                      $moveBack = $session->getPreviousRouteItem()->getTestPart()->getNavigationMode() === NavigationMode::NONLINEAR;
                  }
              } else {
                  $moveBack = $session->getRoute()->current()->getTestPart()->getNavigationMode() === NavigationMode::NONLINEAR;
              }
          } else {
              $moveBack = $session->canMoveBackward();
  
              //check also if the sectionPause prevents you from moving backward
              if($moveBack){
                  $moveBack = $this->getServiceManager()->get(SectionPauseService::SERVICE_ID)->canMoveBackward($session);
              }
          }
  
          return $moveBack;
      }
docs: Can Move Backward
  
  Whether or not the Test Taker is able to navigate backward.
  This implementation takes the CAT sections into consideration.
  
  @return boolean