             else
               return if openStart.isGreaterThan(from)
           found = range
-          return stop()
+      stop() if found?
     found
 
   getPairInfo: (from) ->

    else
      ['close', tagName]

  findOpen: (from,  pattern) ->
    scanFunc = 'backwardsScanInBufferRange'
    scanRange = new Range([0, 0], from)

      {range, stop} = event
      [pairState, tagName] = @getPairState(event)
      if pairState is 'open'
        tagState = pairState + tagName
        stack.push({tagState, range})
      else
        if (index = @findLastIndexOfTagState(stack, "open#{tagName}")) >= 0
          stack = stack[0...index]
        else
          # I'm very torelant for orphan tag like 'br', 'hr', or unclosed tag.
          stack = []
        if stack.length is 0
          if (openStart = entry?.range.start)
            return if openStart.row > from.row
          found = range
      stop() if found?
    found

class ATag extends Tag
