src/Composer/DependencyResolver/RuleWatchChain.php
public function remove()
    {
        $offset = $this->key();
        $this->offsetUnset($offset);
        $this->seek($offset);
    }
public function remove()
    {
        $offset = $this->key();
        $this->offsetUnset($offset);
        $this->seek($offset);
    }
Removes the current element from the list

As SplDoublyLinkedList only allows deleting a particular offset and
incorrectly sets the internal iterator if you delete the current value
this method sets the internal iterator back to the following element
using the seek method.