public function transition($id, $from, $to)
    {
        if (isset($this->items[$id])) {
            throw new \RuntimeException(sprintf('Duplicate item ID: "%s"', $id));
        }
        
        $transition = $this->items[$id] = new Transition($id, $from);
        $transition->to($to);
        
        return $transition;
    }