:param str text: text to be tokenized
    :param str engine: subword tokenizer
    :return: list of subwords

    **Options for engine**
        * tcc (default) -  Thai Character Cluster (Theeramunkong et al. 2000)
        * etcc - Enhanced Thai Character Cluster (Inrut et al. 2001) [In development]

def subword_tokenize(text: str, engine: str = "tcc") -> List[str]:
    """
    :param str text: text to be tokenized
    :param str engine: subword tokenizer
    :return: list of subwords

    **Options for engine**
        * tcc (default) -  Thai Character Cluster (Theeramunkong et al. 2000)
        * etcc - Enhanced Thai Character Cluster (Inrut et al. 2001) [In development]
    """
    if not text or not isinstance(text, str):
        return []

    if engine == "etcc":
        from .etcc import segment
    else:  # default
        from .tcc import segment

    return segment(text)