**Do you want to request a *feature* or report a *bug*?**
Report a *bug*

**What is the current behavior?**
There are cases where actions dispatched by `useReducer`'s dispatch function are reduced twice (in concurrent mode).

As far as I can tell from my first quick read of the code of react-dom (so I might be totally wrong!), this happens, when a higher priority action is added to a queue that already contains lower priority actions.

On the first run, that is caused by for example an onClick handler (higher priority), the dispatched action is appended to the queue. On processing the queue the lower priority actions (for example from setInterval events)  are _ignored_ and the "onClick action" is reduced, but stays on the end of the queue, so that on the next time the queue is processed, that action gets reduced a second time.

See a testcase at:
https://codesandbox.io/s/nxq3w7rwl

Pressing the button increments the button (most of the time not always, depending if 'TICK' actions are in the queue) by two.

**What is the expected behavior?**
I'd expect a dispatched action to be only reduced once.

**Which versions of React, and which browser / OS are affected by this issue? Did this work in previous versions of React?**
Tested with React 16.7.0-alpha.2 on Chrome (70.0.3538.110) and Safari (12.0.1) both on macOs

const [count, updateCount] = useState(0);
        useImperativeMethods(ref, () => ({updateCount}));
        return <Text text={'Count: ' + count} />;
      }
      Counter = forwardRef(Counter);
      const counter = React.createRef(null);
      ReactNoop.render(<Counter ref={counter} />);
      ReactNoop.flush();
      expect(ReactNoop.getChildren()).toEqual([span('Count: 0')]);
      counter.current.updateCount(1);
      ReactNoop.flush();
      expect(ReactNoop.getChildren()).toEqual([span('Count: 1')]);
      counter.current.updateCount(count => count + 10);
      ReactNoop.flush();
      expect(ReactNoop.getChildren()).toEqual([span('Count: 11')]);
    });
    it('lazy state initializer', () => {
      function Counter(props, ref) {