private function patchSiblingAndParentOperation(KeyWord $keyword, &$operations)
 {
     $siblingOperation = null;
     $parentOperation = null;
     foreach ($operations as $key => $operation) {
         $op = array('key' => $key, 'op' => $operation);
         if ('/sibling_uid' === $operation['path']) {
             $siblingOperation = $op;
         } elseif ('/parent_uid' === $operation['path']) {
             $parentOperation = $op;
         }
     }
     if (null !== $siblingOperation || null !== $parentOperation) {
         if ($keyword->isRoot()) {
             throw new BadRequestHttpException('Cannot move root node of a site.');
         }
         try {
             if (null !== $siblingOperation) {
                 unset($operations[$siblingOperation['key']]);
                 $sibling = $this->getKeywordByUid($siblingOperation['op']['value']);
                 $this->getKeywordRepository()->moveAsPrevSiblingOf($keyword, $sibling);
             } elseif (null !== $parentOperation) {
                 unset($operations[$parentOperation['key']]);
                 $parent = $this->getKeywordByUid($parentOperation['op']['value']);
                 $this->getKeywordRepository()->moveAsLastChildOf($keyword, $parent);
             }
         } catch (\InvalidArgumentException $e) {
             throw new BadRequestHttpException(sprintf('Invalid node move action: %s', $e->getMessage()));
         }
     }
 }