**Description**
The `airflow.models.baseoperator.chain()` is a very useful and convenient way to add sequential task dependencies in DAGs.  This function has [recently been updated](https://github.com/apache/airflow/issues/16635) to support `BaseOperator` and `XComArgs` but should also be able to support `Labels` as well.

**Use case / motivation**
Users who create tasks via the `@task` decorator will not be able to use the `chain()` function to apply sequential dependencies that do not share an `XComArg` implicit dependency with a `Label`.  This use case can occur when attempting to chain multiple branch labels and the next sequential task.

With the new update (yet to be released), users will receive the following exception when attempting to chain an `XComArg` and `Label`:

```bash
TypeError: Chain not supported between instances of <class 'airflow.utils.edgemodifier.EdgeModifier'> and <class 'airflow.models.xcom_arg.XComArg'>
```


**Are you willing to submit a PR?**
Absolutely. 🚀 

**Related Issues**
None

tests/models/test_baseoperator.py
"""Tests if non-templatable types remain unchanged."""
        with DAG("test-dag", start_date=DEFAULT_DATE):
            task = DummyOperator(task_id="op1")
        result = task.render_template(content, {"foo": "bar"})
        assert content == result
    def test_render_template_field_undefined_default(self):
        """Test render_template with template_undefined unchanged."""
        with DAG("test-dag", start_date=DEFAULT_DATE):
            task = DummyOperator(task_id="op1")
        with pytest.raises(jinja2.UndefinedError):
            task.render_template("{{ foo }}", {})
    def test_render_template_field_undefined_strict(self):
        """Test render_template with template_undefined configured."""
        with DAG("test-dag", start_date=DEFAULT_DATE, template_undefined=jinja2.StrictUndefined):
            task = DummyOperator(task_id="op1")
        with pytest.raises(jinja2.UndefinedError):
            task.render_template("{{ foo }}", {})
    def test_render_template_field_undefined_not_strict(self):
        """Test render_template with template_undefined configured to silently error."""
        with DAG("test-dag", start_date=DEFAULT_DATE, template_undefined=jinja2.Undefined):
            task = DummyOperator(task_id="op1")
        assert task.render_template("{{ foo }}", {}) == ""
    def test_nested_template_fields_declared_must_exist(self):
        """Test render_template when a nested template field is missing."""
        with DAG("test-dag", start_date=DEFAULT_DATE):
            task = DummyOperator(task_id="op1")
        with pytest.raises(AttributeError) as ctx:
            task.render_template(ClassWithCustomAttributes(template_fields=["missing_field"]), {})
        assert "'ClassWithCustomAttributes' object has no attribute 'missing_field'" == str(ctx.value)
    def test_jinja_invalid_expression_is_just_propagated(self):