Remember last_token in the lexer, instead of using tokenfunc
Added a test and updated CHANGES